{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 淘宝用户行为分析\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " 2014年是阿里巴巴集团移动电子商务业务快速发展的一年。例如，2014年11月11日的移动销售中的移动终端商品总销售额（GMV）占总GMV的42.6％。与PC时代相比，移动终端可以随时随地访问网络。此外，他们还拥有更丰富的背景数据，例如用户的位置信息，访问时间的规律性等。该数据基于阿里巴巴M-Commerce平台上的真实用户商品行为数据。同时，它提供了移动时代典型的位置信息。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 项目描述\n",
    "用户研究是产品设计的第一步，其中以大量数据为支撑的用户行为分析尤为重要，这个项目我们采用淘宝“百万级”用户数据，深度分析用户行为，主要包含基本用户购物情况数据统计，复购率分析，获客分析，留存分析，从时间维度分析每天用户行为，各环节转换率分析，指导运营人员及时调整运营策略。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 项目步骤\n",
    "### 主要完成目标如下：<br>\n",
    "1. 读取数据，数据抽样<br>\n",
    "2. 数据的描述性分析<br>\n",
    "3. 数据的一致性处理<br>\n",
    "   (1)修改数据字段类型<br>\n",
    "   (2)删除不需要的列数据：地理位置<br>\n",
    "4. 探索性分析：统计浏览量，独立访客数，分析有购买行为的用户数，复购率分析<br>\n",
    "   (1)统计pv：Page View, 即页面浏览量或点击量<br>\n",
    "   (2)UV（用户总数）：9924 UV(独立访客)：即Unique Visitor,访问网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次<br>\n",
    "   (3)分析有购买行为的用户数<br>\n",
    "   (4)分析复购率\n",
    "5. 探索性分析：分析活跃度，从时间维度分析用户行为<br>\n",
    "   (1)每周的用户行为数量变化趋势<br>\n",
    "   (2)每天PV变化趋势分析<br>\n",
    "   (3)分析一天中的不同时段用户的行为<br>\n",
    "6. 获客分析<br>\n",
    "7. 转化率分析<br>\n",
    "8. 留存率分析<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "plt.rcParams['font.sans-serif']=['SimHei']  #显示中文标签\n",
    "import numpy as np\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 读取数据，这里是完整的12256906条数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据集来源：https://tianchi.aliyun.com/dataset/dataDetail?dataId=46"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# import pandas as pd\n",
    "# data=pd.read_csv('tianchi_mobile_recommend_train_user.csv')\n",
    "# data.head()\n",
    "# data.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据量过大，所以这里随机抽取了100万条数据，并且存储为user.csv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "#随机、可放回抽样\n",
    "# data=data.sample(n=1000000,replace=True,axis=0) \n",
    "# data.to_csv(\"user.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 存储的user.csv文件\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "plt.rcParams['font.sans-serif']=['SimHei']  #显示中文标签\n",
    "data=pd.read_csv('user.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>user_geohash</th>\n",
       "      <th>item_category</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>30282407</td>\n",
       "      <td>189836232</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>6431</td>\n",
       "      <td>2014-12-15 14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>91557809</td>\n",
       "      <td>43134506</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1863</td>\n",
       "      <td>2014-12-10 18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21233965</td>\n",
       "      <td>3776579</td>\n",
       "      <td>3</td>\n",
       "      <td>94rlqle</td>\n",
       "      <td>13664</td>\n",
       "      <td>2014-12-02 20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>54590569</td>\n",
       "      <td>107237828</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1863</td>\n",
       "      <td>2014-12-02 03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>137120980</td>\n",
       "      <td>54431185</td>\n",
       "      <td>1</td>\n",
       "      <td>94jrwhn</td>\n",
       "      <td>5395</td>\n",
       "      <td>2014-12-09 17</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     user_id    item_id  behavior_type user_geohash  item_category  \\\n",
       "0   30282407  189836232              1          NaN           6431   \n",
       "1   91557809   43134506              1          NaN           1863   \n",
       "2   21233965    3776579              3      94rlqle          13664   \n",
       "3   54590569  107237828              1          NaN           1863   \n",
       "4  137120980   54431185              1      94jrwhn           5395   \n",
       "\n",
       "            time  \n",
       "0  2014-12-15 14  \n",
       "1  2014-12-10 18  \n",
       "2  2014-12-02 20  \n",
       "3  2014-12-02 03  \n",
       "4  2014-12-09 17  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1000000, 6)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. user_id：用户id\n",
    "2. item_id：商品id\n",
    "3. behavior_type:用户行为\n",
    "4. user_geohash：地理位置-加密处理\n",
    "5. item_category：品类id\n",
    "6. time：用户行为发生的时间"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1000000 entries, 0 to 999999\n",
      "Data columns (total 6 columns):\n",
      " #   Column         Non-Null Count    Dtype \n",
      "---  ------         --------------    ----- \n",
      " 0   user_id        1000000 non-null  int64 \n",
      " 1   item_id        1000000 non-null  int64 \n",
      " 2   behavior_type  1000000 non-null  int64 \n",
      " 3   user_geohash   320202 non-null   object\n",
      " 4   item_category  1000000 non-null  int64 \n",
      " 5   time           1000000 non-null  object\n",
      "dtypes: int64(4), object(2)\n",
      "memory usage: 45.8+ MB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 删除地理位置这一列数据\n",
    "data.drop(labels='user_geohash',\n",
    "         axis=1,inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['user_id', 'item_id', 'behavior_type', 'item_category', 'time'], dtype='object')"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>item_category</th>\n",
       "      <th>time</th>\n",
       "      <th>date</th>\n",
       "      <th>hour</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>30282407</td>\n",
       "      <td>189836232</td>\n",
       "      <td>1</td>\n",
       "      <td>6431</td>\n",
       "      <td>2014-12-15 14</td>\n",
       "      <td>2014-12-15</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>91557809</td>\n",
       "      <td>43134506</td>\n",
       "      <td>1</td>\n",
       "      <td>1863</td>\n",
       "      <td>2014-12-10 18</td>\n",
       "      <td>2014-12-10</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21233965</td>\n",
       "      <td>3776579</td>\n",
       "      <td>3</td>\n",
       "      <td>13664</td>\n",
       "      <td>2014-12-02 20</td>\n",
       "      <td>2014-12-02</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>54590569</td>\n",
       "      <td>107237828</td>\n",
       "      <td>1</td>\n",
       "      <td>1863</td>\n",
       "      <td>2014-12-02 03</td>\n",
       "      <td>2014-12-02</td>\n",
       "      <td>03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>137120980</td>\n",
       "      <td>54431185</td>\n",
       "      <td>1</td>\n",
       "      <td>5395</td>\n",
       "      <td>2014-12-09 17</td>\n",
       "      <td>2014-12-09</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     user_id    item_id  behavior_type  item_category           time  \\\n",
       "0   30282407  189836232              1           6431  2014-12-15 14   \n",
       "1   91557809   43134506              1           1863  2014-12-10 18   \n",
       "2   21233965    3776579              3          13664  2014-12-02 20   \n",
       "3   54590569  107237828              1           1863  2014-12-02 03   \n",
       "4  137120980   54431185              1           5395  2014-12-09 17   \n",
       "\n",
       "         date hour  \n",
       "0  2014-12-15   14  \n",
       "1  2014-12-10   18  \n",
       "2  2014-12-02   20  \n",
       "3  2014-12-02   03  \n",
       "4  2014-12-09   17  "
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 拆分time这一列数据 \n",
    "data['date']=data['time'].apply(lambda s:s.split()[0])\n",
    "data['hour']=data['time'].apply(lambda s:s.split()[1])\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1000000 entries, 0 to 999999\n",
      "Data columns (total 7 columns):\n",
      " #   Column         Non-Null Count    Dtype \n",
      "---  ------         --------------    ----- \n",
      " 0   user_id        1000000 non-null  int64 \n",
      " 1   item_id        1000000 non-null  int64 \n",
      " 2   behavior_type  1000000 non-null  int64 \n",
      " 3   item_category  1000000 non-null  int64 \n",
      " 4   time           1000000 non-null  object\n",
      " 5   date           1000000 non-null  object\n",
      " 6   hour           1000000 non-null  object\n",
      "dtypes: int64(4), object(3)\n",
      "memory usage: 53.4+ MB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 修改日期类型\n",
    "data['time']=pd.to_datetime(data['time'])\n",
    "data['date']=pd.to_datetime(data['date'])\n",
    "data['hour']=data['hour'].astype('int32')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1000000 entries, 0 to 999999\n",
      "Data columns (total 7 columns):\n",
      " #   Column         Non-Null Count    Dtype         \n",
      "---  ------         --------------    -----         \n",
      " 0   user_id        1000000 non-null  int64         \n",
      " 1   item_id        1000000 non-null  int64         \n",
      " 2   behavior_type  1000000 non-null  int64         \n",
      " 3   item_category  1000000 non-null  int64         \n",
      " 4   time           1000000 non-null  datetime64[ns]\n",
      " 5   date           1000000 non-null  datetime64[ns]\n",
      " 6   hour           1000000 non-null  int32         \n",
      "dtypes: datetime64[ns](2), int32(1), int64(4)\n",
      "memory usage: 49.6 MB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>item_category</th>\n",
       "      <th>time</th>\n",
       "      <th>date</th>\n",
       "      <th>hour</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>30282407</td>\n",
       "      <td>189836232</td>\n",
       "      <td>1</td>\n",
       "      <td>6431</td>\n",
       "      <td>2014-12-15 14:00:00</td>\n",
       "      <td>2014-12-15</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>91557809</td>\n",
       "      <td>43134506</td>\n",
       "      <td>1</td>\n",
       "      <td>1863</td>\n",
       "      <td>2014-12-10 18:00:00</td>\n",
       "      <td>2014-12-10</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21233965</td>\n",
       "      <td>3776579</td>\n",
       "      <td>3</td>\n",
       "      <td>13664</td>\n",
       "      <td>2014-12-02 20:00:00</td>\n",
       "      <td>2014-12-02</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>54590569</td>\n",
       "      <td>107237828</td>\n",
       "      <td>1</td>\n",
       "      <td>1863</td>\n",
       "      <td>2014-12-02 03:00:00</td>\n",
       "      <td>2014-12-02</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>137120980</td>\n",
       "      <td>54431185</td>\n",
       "      <td>1</td>\n",
       "      <td>5395</td>\n",
       "      <td>2014-12-09 17:00:00</td>\n",
       "      <td>2014-12-09</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     user_id    item_id  behavior_type  item_category                time  \\\n",
       "0   30282407  189836232              1           6431 2014-12-15 14:00:00   \n",
       "1   91557809   43134506              1           1863 2014-12-10 18:00:00   \n",
       "2   21233965    3776579              3          13664 2014-12-02 20:00:00   \n",
       "3   54590569  107237828              1           1863 2014-12-02 03:00:00   \n",
       "4  137120980   54431185              1           5395 2014-12-09 17:00:00   \n",
       "\n",
       "        date  hour  \n",
       "0 2014-12-15    14  \n",
       "1 2014-12-10    18  \n",
       "2 2014-12-02    20  \n",
       "3 2014-12-02     3  \n",
       "4 2014-12-09    17  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 3, 4, 2])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['behavior_type'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>item_category</th>\n",
       "      <th>time</th>\n",
       "      <th>date</th>\n",
       "      <th>hour</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>30282407</td>\n",
       "      <td>189836232</td>\n",
       "      <td>pv</td>\n",
       "      <td>6431</td>\n",
       "      <td>2014-12-15 14:00:00</td>\n",
       "      <td>2014-12-15</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>91557809</td>\n",
       "      <td>43134506</td>\n",
       "      <td>pv</td>\n",
       "      <td>1863</td>\n",
       "      <td>2014-12-10 18:00:00</td>\n",
       "      <td>2014-12-10</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21233965</td>\n",
       "      <td>3776579</td>\n",
       "      <td>collect</td>\n",
       "      <td>13664</td>\n",
       "      <td>2014-12-02 20:00:00</td>\n",
       "      <td>2014-12-02</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>54590569</td>\n",
       "      <td>107237828</td>\n",
       "      <td>pv</td>\n",
       "      <td>1863</td>\n",
       "      <td>2014-12-02 03:00:00</td>\n",
       "      <td>2014-12-02</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>137120980</td>\n",
       "      <td>54431185</td>\n",
       "      <td>pv</td>\n",
       "      <td>5395</td>\n",
       "      <td>2014-12-09 17:00:00</td>\n",
       "      <td>2014-12-09</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     user_id    item_id behavior_type  item_category                time  \\\n",
       "0   30282407  189836232            pv           6431 2014-12-15 14:00:00   \n",
       "1   91557809   43134506            pv           1863 2014-12-10 18:00:00   \n",
       "2   21233965    3776579       collect          13664 2014-12-02 20:00:00   \n",
       "3   54590569  107237828            pv           1863 2014-12-02 03:00:00   \n",
       "4  137120980   54431185            pv           5395 2014-12-09 17:00:00   \n",
       "\n",
       "        date  hour  \n",
       "0 2014-12-15    14  \n",
       "1 2014-12-10    18  \n",
       "2 2014-12-02    20  \n",
       "3 2014-12-02     3  \n",
       "4 2014-12-09    17  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 1234  浏览 加购物车 收藏 购买\n",
    "behavior_map={1:'pv',2:'cart',3:'collect',4:'buy'}\n",
    "data['behavior_type']=data['behavior_type'].map(behavior_map)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "behavior_type\n",
       "pv         942150\n",
       "collect     28242\n",
       "cart        19837\n",
       "buy          9771\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计pv  100w\n",
    "data['behavior_type'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "user_id\n",
       "4913         141\n",
       "6118           9\n",
       "7528          17\n",
       "7591          75\n",
       "12645         27\n",
       "            ... \n",
       "142376113     18\n",
       "142412247     19\n",
       "142430177    110\n",
       "142450275    569\n",
       "142455899    106\n",
       "Name: behavior_type, Length: 9924, dtype: int64"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计uv 独立访客 100w  有多少个实际用户 9924\n",
    "data.groupby('user_id')['behavior_type'].count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9924"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算非重复的用户数量\n",
    "data['user_id'].nunique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4522"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# (3)分析有购买行为的用户数\n",
    "data_buy=data[data['behavior_type']=='buy']\n",
    "data_buy['user_id'].nunique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "np.float64(0.421937195931004)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# (4)分析复购率\n",
    "# 有复购行为的用户数/有购买行为的用户数\n",
    "\n",
    "# 复购：一天内多次购买不算复购 算一次\n",
    "#       按天计算复购情况\n",
    "# 计算复购率\n",
    "data_rebuy=data_buy.groupby('user_id')['date'].nunique()\n",
    "data_rebuy[data_rebuy>=2].count()/4522"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "user_id\n",
       "4913         1\n",
       "7528         1\n",
       "7591         1\n",
       "79824        1\n",
       "88930        3\n",
       "            ..\n",
       "142216376    1\n",
       "142244794    1\n",
       "142306361    1\n",
       "142450275    2\n",
       "142455899    2\n",
       "Name: date, Length: 4522, dtype: int64"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_rebuy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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OTk5dULn4cOH3SeffLI7Pj7ehLE//vGP3gDqS8Pl5MmTvWHsq6++MmH2pptuavR1Kisr3VdddZUJpkqPqYFyxowZ3se89tpr7l69erlPPPFEc16+5s6da85HQ7K+Vn3r1683563ns2LFCveFF17o/uCDD8zzkpOT3Y8//ri7T58+7lNOOcWE5PpB/L777jM/81lnneUuKiryfm/p0qXuu+66y921a1cTSP359NNPzTnm5ua6n3jiCXNdQ7qv+++/35wDALQEARZA1Pryyy9N5VIrnPfcc4976tSpJkAOGzbMBK1LL73UnZKSYi4aujRs6v3Lli1z33zzze7u3bu7s7KyvMfTiq2Gz+Li4jqvc/vtt7uTkpJMoPvrX//qvV8fl52dba7PmjXLfF+rqCUlJY2er1aCMzIy3CNGjDAhUyubCxYsMKFVK8VaJdWgrP7zn/+4jz32WBNa33vvPXPfxo0b3X379jVhdNOmTd7j3nDDDe4OHTq4H3jgAW/V1/L888+byuv06dPde/bs8fv71MCsP8OBAwdM8NVKdv2KtP6eR48e3ezfBgD8idH/ad2mBABwBl2spD2oQ4YMMX2m2iOqi5eOOuoo72N0Nb/2t37++edmQZKu0L/uuutk+vTpZtFU/QVK1jQAX9obqrtoaU+steK/Pp0YoH245557rt9z1lmu+fn5ZuyWNa5Ld+HSkV1paWl1elZ1DqzOePW9X/trdSLCNddc471Pe3P18brbV0voz66jt3ShV2MbNgBAayHAAgAAwFEYowUAAABHIcACAADAUQiwAAAAcBQCLAAAABwlKnbi0q0WdYVvamqq2UkGAAAA9qJzBQoKCsyOiLGx/musURFgNbzW378bAAAA9rNr1y7p27ev38dERYDVyqv1C/GdhwgAAAB70BnXWnC0cptEe4C12gY0vBJgAQAA7CuQdk8WcQEAAMBRCLAAAABwFAIsAAAAHIUACwAAAEchwAIAAMBRCLAAAABwFAIsAAAAHIUACwAAAEchwAIAAMBRCLAAAABwFAIsAAAAHIUACwAAAEchwAIAAMBRCLAAAABwFAIsAAAAHIUACwAAAEchwAIAAMBRCLAAAABwFAIsAAAAHMUV6RNA05Z9tjPgx04f169NzwUAAMAuqMACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHiViAPXTokAwcOFB27NgR0OOfeeYZ6dWrl8THx8vpp58u+/bta/NzBAAAgP3ERiq8XnDBBQGH148++kjuu+8+ef755yUrK0vcbrf84he/aPPzBAAAgP1EJMBefvnlMn369IAf/+2338rTTz8tEydOlL59+8qMGTNk3bp1bXqOAAAAsCdXJF504cKFpn3g9ttvD+jxGlh9bd26VYYOHdpGZwcAAAA7i0iA1fAaqiNHjphq7LJly5p8TFlZmblY8vPzQ349AAAA2IvjphDcfPPNcvLJJ8vkyZObfMy8efMkPT3de8nMzAzrOQIAAKDtOCrAPvvss/Lee+/JX//6V7+PmzNnjuTl5Xkvu3btCts5AgAAoB22EIRizZo1cuutt8obb7whPXr08PvYxMREcwEAAED7Y6sKrPaqVlRUNLj/4MGDMmXKFLn77rvlxBNPlMLCQnMBAABA9LFVgB05cqS89dZbDe7/29/+Jvv37zezYFNTU70XAAAARJ8Yt+4K0M5pZVcXc2k/bFpamjjFss92BvzY6eP6tem5AAAA2CWv2aoCCwAAADSHAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsA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/eWXX7pPOeWUSJ8WWsl///tfd0pKinvw4MHupKQk96RJk9zff/99pE8LLXTWWWe5H3vsMS3LuLOyssx9vJfbl++++8589f0b835uP/75z3+6n376ae/tlStXujt06MD72MaowNrM+vXrzWzc5ORkc3vkyJHmv/jQPujfctiwYfL888/LV199ZT6qmjVrVqRPCy20cOFC0wvpi/dy+6LtIfXxfm4/9BMU37/d1q1bZejQobyPbcwV6RNAXbrNru+/KHVRgO48pr1V2n8DZ7viiivMxfLEE0+Yv7f+3dPS0iJ6bmjdcMN7uf3j/dw+lZeXy5/+9Ce58847Zdu2bbyPbYoKrM3of8HX37YuKSlJiouLI3ZOaDvdu3eX6upq2bdvX6RPBa2M93L04f3cPuj2sR07djQ9sLyP7YsAazOdO3eW7OzsOvcVFBSwdW47oStYly1b5r29evVqiY2NlczMzIieF1of7+X2j/dz+7Ny5UpZsGCB+bvGx8fzPrYxWghsRkd1aD+dJSsry6yC1DcRnO+4446Te++9V3r06CFVVVVy6623ylVXXeXtr0L7wXu5/eP93L7oe3TatGkmwB599NHmPt7H9kUF1mZ0HIv2Ty1ZssTcnjt3rkycONH03MD5rrzySrnsssvk4osvNv+iPPfcc+Xxxx+P9GmhDfBebv94P7cfJSUlZiHXj370I7nooouksLDQXE477TTexzYVo6MIIn0SqOuNN94w/zLs0KGD+Thq1apV3v8aBGBfusBDKzQDBgwwt3kvA87ZxODCCy9scL++n3XCBO9j+yHA2tT+/ftl7dq1ZnxHly5dIn06AELEexlwPt7H9kOABQAAgKPQAwsAAABHIcACAADAUQiwAAAAcBQCLAAAAByFAAsAAABHIcACgA3t2LHDzJUFADREgAUAhzvjjDNk6dKlkT4NAAgbAiwAAAAchQALADbx5ptvypAhQ6Rr167y3HPPee//+OOP5fjjj5fk5GQZO3asbNq0ydx/ww03mDaD999/X2bMmGGu632WL774QsaNGyfp6eny4x//WPLy8iLycwFAayPAAoANHDhwQC677DK555575NNPPzVhVlVXV8sll1xiAuh3330nEyZMkF/84hfme48++qjk5OTIKaecIgsWLDDX9T6Vm5srkydPNhfdyz0/P1/uuuuuiP6MANBaXK12JABAyN555x0ZOHCgXH/99eb2b37zGzn//PPN9XXr1klGRoYJohpMt27dau7v0KGDubhcLlOd7dSpk/d4b731lsTHx8uvf/1rU5nV0HvVVVdF6KcDgNZFgAUAG9i3b5/069fPe3vw4MHma2xsrKmqLl68WAYNGiSZmZlSVVXV7PF2794t2dnZJvhaldyCggIpLS2VpKSkNvxJAKDtEWABwAa6d+8ue/fu9d7euXOn+bpq1SpZtGiRbN682Tzm7bfflrVr19Z5roZct9td576+ffvK6NGj5aWXXjK39fvaA6tVWQBwOnpgAcAGzjnnHNmyZYs8++yzsn37dtNCoLRqqrR1QBdz3XnnnQ3CqlZrV65caaq47777rqnQavuBhuDPP//ctBm88sorcu655zZ4LgA4EQEWAGxAK6Yvvvii/Pa3v5VTTz3VLMxSGjr1csIJJ5gJA9ojq5VaXfRluffee03o7d+/v3mMtgtoP+wbb7whf/rTn0zrwcsvv2xua78sADhdjJv/HAcAAICDUIEFAACAoxBgAQAA4CgEWAAAADgKARYAAACOQoAFAACAoxBgAQAA4CgEWAAAADgKARYAAACOQoAFAACAoxBgAQAAIE7y/wEnNGIAt6zmOAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 分析有购买行为的用户 复购次数分析\n",
    "plt.figure(figsize=(8,6),dpi=100)\n",
    "# 密度曲线图和直方图\n",
    "sns.distplot(data_rebuy-1)\n",
    "plt.title('复购次数分析')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 5. 探索性分析：分析活跃度，从时间维度分析用户行为<br>\n",
    "#    (1)每周的用户行为数量变化趋势<br>\n",
    "#    (2)每天PV变化趋势分析<br>\n",
    "#    (3)分析一天中的不同时段用户的行为<br>\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>item_category</th>\n",
       "      <th>time</th>\n",
       "      <th>date</th>\n",
       "      <th>hour</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>30282407</td>\n",
       "      <td>189836232</td>\n",
       "      <td>pv</td>\n",
       "      <td>6431</td>\n",
       "      <td>2014-12-15 14:00:00</td>\n",
       "      <td>2014-12-15</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>91557809</td>\n",
       "      <td>43134506</td>\n",
       "      <td>pv</td>\n",
       "      <td>1863</td>\n",
       "      <td>2014-12-10 18:00:00</td>\n",
       "      <td>2014-12-10</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21233965</td>\n",
       "      <td>3776579</td>\n",
       "      <td>collect</td>\n",
       "      <td>13664</td>\n",
       "      <td>2014-12-02 20:00:00</td>\n",
       "      <td>2014-12-02</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>54590569</td>\n",
       "      <td>107237828</td>\n",
       "      <td>pv</td>\n",
       "      <td>1863</td>\n",
       "      <td>2014-12-02 03:00:00</td>\n",
       "      <td>2014-12-02</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>137120980</td>\n",
       "      <td>54431185</td>\n",
       "      <td>pv</td>\n",
       "      <td>5395</td>\n",
       "      <td>2014-12-09 17:00:00</td>\n",
       "      <td>2014-12-09</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     user_id    item_id behavior_type  item_category                time  \\\n",
       "0   30282407  189836232            pv           6431 2014-12-15 14:00:00   \n",
       "1   91557809   43134506            pv           1863 2014-12-10 18:00:00   \n",
       "2   21233965    3776579       collect          13664 2014-12-02 20:00:00   \n",
       "3   54590569  107237828            pv           1863 2014-12-02 03:00:00   \n",
       "4  137120980   54431185            pv           5395 2014-12-09 17:00:00   \n",
       "\n",
       "        date  hour  \n",
       "0 2014-12-15    14  \n",
       "1 2014-12-10    18  \n",
       "2 2014-12-02    20  \n",
       "3 2014-12-02     3  \n",
       "4 2014-12-09    17  "
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 每周的用户行为数量变化趋势\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Timestamp('2014-11-18 00:00:00')"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['date'].min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Timestamp('2014-12-18 00:00:00')"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['date'].max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "# data['date'].dt.year\n",
    "# data['date'].dt.month\n",
    "# data['date'].dt.day\n",
    "# data['date'].dt.weekday"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.新建一列 星期\n",
    "### 2.每周的用户行为数量变化趋势 可视化\n",
    "### 3.每天PV变化趋势分析 可视化\n",
    "### 4.分析一天中的不同时段用户的行为 可视化 折线图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>behavior_type</th>\n",
       "      <th>item_category</th>\n",
       "      <th>time</th>\n",
       "      <th>date</th>\n",
       "      <th>hour</th>\n",
       "      <th>week</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>30282407</td>\n",
       "      <td>189836232</td>\n",
       "      <td>pv</td>\n",
       "      <td>6431</td>\n",
       "      <td>2014-12-15 14:00:00</td>\n",
       "      <td>2014-12-15</td>\n",
       "      <td>14</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>91557809</td>\n",
       "      <td>43134506</td>\n",
       "      <td>pv</td>\n",
       "      <td>1863</td>\n",
       "      <td>2014-12-10 18:00:00</td>\n",
       "      <td>2014-12-10</td>\n",
       "      <td>18</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21233965</td>\n",
       "      <td>3776579</td>\n",
       "      <td>collect</td>\n",
       "      <td>13664</td>\n",
       "      <td>2014-12-02 20:00:00</td>\n",
       "      <td>2014-12-02</td>\n",
       "      <td>20</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>54590569</td>\n",
       "      <td>107237828</td>\n",
       "      <td>pv</td>\n",
       "      <td>1863</td>\n",
       "      <td>2014-12-02 03:00:00</td>\n",
       "      <td>2014-12-02</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>137120980</td>\n",
       "      <td>54431185</td>\n",
       "      <td>pv</td>\n",
       "      <td>5395</td>\n",
       "      <td>2014-12-09 17:00:00</td>\n",
       "      <td>2014-12-09</td>\n",
       "      <td>17</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     user_id    item_id behavior_type  item_category                time  \\\n",
       "0   30282407  189836232            pv           6431 2014-12-15 14:00:00   \n",
       "1   91557809   43134506            pv           1863 2014-12-10 18:00:00   \n",
       "2   21233965    3776579       collect          13664 2014-12-02 20:00:00   \n",
       "3   54590569  107237828            pv           1863 2014-12-02 03:00:00   \n",
       "4  137120980   54431185            pv           5395 2014-12-09 17:00:00   \n",
       "\n",
       "        date  hour  week  \n",
       "0 2014-12-15    14     0  \n",
       "1 2014-12-10    18     2  \n",
       "2 2014-12-02    20     1  \n",
       "3 2014-12-02     3     1  \n",
       "4 2014-12-09    17     1  "
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['week']=data['date'].dt.weekday\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1000x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 每周的用户行为数量变化趋势\n",
    "df_week=data.groupby('week')['behavior_type'].count()\n",
    "df_week.index=[1,2,3,4,5,6,7]\n",
    "df_week\n",
    "# 可视化\n",
    "plt.figure(figsize=(10,4),dpi=100)\n",
    "df_week.plot()\n",
    "plt.title('每周的用户行为数量变化趋势',\n",
    "         fontsize=18)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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5rnPPffcOdtSU1NtAQEBZvvs2bPNfT/99JO5rfdnZmae85ymTZua7WPHji3w/fR16tata/vxxx/N7TVr1pjH6344atmypbl/3759tpycHNszzzxj+/TTTwv1mf744w+bh4eHef6WLVsKfEy/fv3M9oULF+a5f9asWTZPT0+z7bXXXrvoe9WrV89c8rN+J55++uk893/00UcF3n8++vn18XfddZe5nf87T0tLM/t75ZVX2u974oknzHMmTJhQqPeYOnWqebyvr69tx44dF3zsiy++aH/s3Llzz/s46+d6oYv+rqhFixaZ2/fee2+h9hcAyhqDeQGgEPQM+F133WWGWelcnBkzZphhQXqWvagXHcLmarQKYQ0H27Fjh/lTh4hpJUA74K1ZsybP47XapPOSVEHd1bQyodUmnRuj1Q79/grju+++M0O9tMlFQdUWR/qaOpzMqlTkb25xITrUbciQIab68+STTxY4HK8wtBOe/k5oVcSxgYAOm9T912rPP//5z4u+jn4Gq8OdVtC6d+9ubx6hFbcrrrjCzKvS/XVs2GF159NKzMXExcWZZhFKK2U6dPJCXnrpJenfv7+paOmfX3755Xl/d7T6d9lll5lKlNWIQff/yiuvNNXCJk2aFGveFwCUNYbVAUAhLFmyxLSe1jkSOoxJD4Z1KJHSBgQ6x0b9+uuvZv6NzqvJ788//zTNB6xhV/npga4ePOrQo/yNGIrCamSgE+4vZT6HfiadsD9v3jwztM5xCJY1pE4bOBQ0FE5Di3ZV0wNwHWqmw8YKQ4dvaRjQttk65E2HY+lBekH+7//+z4Scotq8ebNce+21JsA98sgjprlGcd1yyy3yj3/8Q3744QcZPny4CWj6M9Sgo2FEvxtrSKIGTe2cZ/2M3n//fdm+fbu56LBCDaFK/7zqqqvsTT70e9R1g6xgYw1TVNZ8twvNq1L6PWpDC23ooYFFv9uL0dfWkwA6VPLnn3+We++918wz0+YYjsMXdeihfqcWDUo61FADbv55cYX5vbbmnOnvr84joykDgDJV5rUqAHBTe/bsMRfL3XffbYYI6XAntWrVKjPEq1WrVratW7ee8/xXXnnFPH7t2rUFvn6XLl0uOjypqJczZ84UeVidDjfLPzTs6quvzvP4O++809z/+OOPn/NaOkRNtwUHB9uio6Pt969evdrc37179zyPb968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C/29BwCXVeYrKwFABbR69WqzyOXo0aPN4qa6sGlGRkaex6xbt852yy232BfRDAgIsE2ePLlQr3/69GnbsGHD7M/VhUGvv/5622effXbO+zjDwYMHzcKwAwYMMAvk6j62b9/evgCtLlT67LPP2ubOnWsWRS3O4ra6wGlBBg4caF9gNP93oQuXNm3aNM+ismratGnmPt1flZOTY/v8889twcHBtho1apjHTpo0ybZhw4ZzFqm90M9IF6rVn78jXVBVP7f+/PRnru+rC7/mX6xW92Ht2rW2zZs3m9+V999/33x/utDqiRMnLvr+8+fPty/oqwsB62K++a1cudIs9KqfPyIiwjz2o48+shXFBx98YJ735ptvmtsnT560NWjQIM/3md+sWbPM9gcffLBI7wUAJY1wBAClJDEx0fbkk0/aRo4caYuKijIHf3pAnV9WVpbt5ptvtgcbvfTp08e2d+/eIr/n7Nmz7e+lFz1QLUsJCQm2RYsWmYPrl19+2XyuevXq2fenUqVKtkGDBpmDcLVp0ybb0KFDzf2On79atWq2rl27moPpe+65x7Znz57zvucVV1xhnlPQwb569dVX87z2+S5Lliwxj9cAZe3zDz/8kOe14uPjba+88ootPDw8z3OrVq1qwoSGDw1b+jNo2LCheVz16tVtPj4+5nEdOnTIExgvu+wyE24cX0cD9KFDhwr8LKNGjTpnv++///4L/kyWLVtm69u3r/3xLVq0OO/vloYTx9fWz3T8+HFbUbz99tvmufo9aaDr2bOnue3t7X3en9F3331nHjNixIgivRcAlDTCEQCUomuvvdZ+oHnDDTfY0tLSCnycVkv0bH7Hjh1tP/300yW9p1YmpkyZYnv++edtZU2rBPmDgwYdDURffvmlCYzne55uv+2222whISF5nj9kyJALvqdWoPRxWk0piFZ2tNKj1SkNLo6XZs2a2a666irz3o70tgYcDa4F0YP+9evXm/B57733mtfQMKSVJQ8Pj/MGMKuaYtGwrOHo6quvNlW+830/Fq08NWnSxHbdddfZHnnkERPedF8uJCYmxnxOfZ+HH37YVKrOZ8uWLebndfnll9tef/1127Fjx2xF9dprr5nP+swzz9h/thrqtDJ4Ploh1ecMHjy4yO8HACXJQ//j7KF9AFBeLV++3HQ606YJF5s0r+sBFacls6vRJhE6D0vX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",
      "text/plain": [
       "<Figure size 1000x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 每天PV变化趋势分析 可视化\n",
    "data_pv=data[data['behavior_type']=='pv']\n",
    "data_pv1=data_pv.groupby('date')['behavior_type'].count()\n",
    "data_pv1\n",
    "# 可视化\n",
    "plt.figure(figsize=(10,4),dpi=100)\n",
    "data_pv1.plot()\n",
    "plt.title('每天PV变化趋势分析',\n",
    "         fontsize=18)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1000x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 分析一天中的不同时段用户的行为\n",
    "data_hour=data.groupby('hour')['behavior_type'].count()\n",
    "data_hour\n",
    "# 可视化\n",
    "plt.figure(figsize=(10,4),dpi=100)\n",
    "data_hour.plot()\n",
    "plt.title('分析一天中的不同时段用户的行为',\n",
    "         fontsize=18)\n",
    "plt.xticks(np.arange(0,24))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 6. 获客分析<br>\n",
    "# 7. 转化率分析<br>\n",
    "# 8. 留存率分析<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "behavior_type\n",
       "pv         942150\n",
       "collect     28242\n",
       "cart        19837\n",
       "buy          9771\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[data['behavior_type']=='pv']\n",
    "# 转化率分析 \n",
    "data['behavior_type'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.010370960038210477"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "9771/942150"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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JCkpad9Es81MNAMAAAiFgBujE81YCxcAACA0Am6MaZxNBRcAAKAiBNxYXUkhjwouAABAKATcmF0LlwouAABAKATcGJOzt0WBtXABAABCI+DGGI5mBgAAUDECboz24P60fbftKuBgDwAAAKURcGNM1mFpdlhaijtPFRcAAKAsAm4sHuwh0IfLRDMAAIDSCLgxKMfvw2WpMAAAgDIIuDGokb8WLhVcAACAMgi4MShnb8DNpQcXAACgDAJuDGqcXdyisI6ACwAAEF0B96WXXrLWrVtbamqqHXfccfbVV1+56xctWmTdu3e3unXr2u23326e5wXuM2vWLGvfvr01aNDAxo4dW+L7TZs2zVq0aGE5OTn2zDPPWLwvFZabR4sCAABA1ATc5cuX21VXXWV//vOfbc2aNXbkkUfa0KFDLT8/3wYOHGhdu3a1uXPn2uLFi23y5MnuPhs2bLBBgwbZkCFD7KOPPrIpU6bYjBkzAqH40ksvtREjRthbb71lI0eOtKVLl1o84mAPAAAAURhwVa1VuL3ooousYcOGdv3119v8+fPtjTfesM2bN7vqbJs2bWzUqFE2ceJEdx8FWlVnFWLbtWvnQqy/bcKECdanTx8Xkjt27Gg33nijPfnkkxaP/GXCNu8ssB27CyO9OwAAAFElYgH3nHPOsWuvvTZwWdVWhdYFCxZYz549rWbNmu76Tp06uSquaJtCrNaClR49eti8efMC2/r27Rv4fsHb4k1mRprVTk9156niAgAAROEks927d9uDDz5o1113nW3ZssVatWoV2KYwm5KSYps2bSqzLTMz03Jzc935iraFolYI3Sf4FIt9uKyFCwAAEIUB96677rJatWq59gJNOEtPTy+xPSMjw3bs2FFmm3+9VLQtlNGjR1tWVlbg1KxZM4vFtXBzWQsXAAAgugLuu+++aw8//LA9/fTTlpaWZvXq1XOTyYJt3brVatSoUWabf71UtC2U4cOHu15f/7R69WqLxaOZsVQYAABAFAXcFStWuBURFHA7dOjgrtPyYFohIfg2aidQgC29TZPSmjRpEvJ+wdtCUbVXbQzBp1icaMbRzAAAAKIk4O7cudNNNDv33HPtvPPOs23btrlTr169XD/spEmT3O20isIZZ5zh+nC1RNjs2bNt+vTpVlBQYGPGjLH+/fu72w0ePNimTp1qCxcudN9n/PjxgW3xyK/g5tKDCwAAUELxVPwIePvtt93qCDo9/vjjJSq2WvJLlV0d5CE5OdlmzpzptungDuPGjbOzzz7bateubdnZ2YE1cjt37mw333yzdevWzfXfakWGYcOGWbzye3Cp4AIAAJSU5AUfJiyKrFu3zi3zpSXD6tevX2KbQvCSJUtctVdBN5gCsw4c0bt37wp7cEtT1ViTzdSPGwvtCst+2GpnjH3P6mSk2sK747dSDQAAUNm8FrEK7v40atTIBgwYEHKblgMLXhIsmHp5/X7eeOYfzWzrrkLbll8YWBcXAAAg0UV8FQUcmFrpqZaZsfdgD3m0KQAAAPgIuHFQxc1lqTAAAIAAAm4M85cKW8dEMwAAgAACbjxUcFkqDAAAIICAG8Mas1QYAABAGQTcuAi4VHABAAB8BNwYlpNd3KJAwAUAANiHgBsPFdy8nRalx+sAAACodgTcOJhktn33HtuyqzDSuwMAABAVCLgx7LAaKZZdM82dZ6IZAABAMQJunFRx6cMFAAAoRsCNcTmBPlwCLgAAgBBwY1wj1sIFAAAogYAbJ0uFcTQzAACAYgTcOFkqbN0WKrgAAABCwI2TSWZrNhFwAQAAhIAb49oeUdtSkpNs5cYdtvD7zZHeHQAAgIgj4Ma4w+uk26DOOe78IzOXRXp3AAAAIo6AGweuP62N+/rml+ts2Q/bIr07AAAAEUXAjQNHNqxjZ7RvaJ5n9tis5ZHeHQAAgIgi4MaJYX2Kq7j/nb/GcvOYcAYAABIXATdOdGle13q2rmeFRZ5NeH9FpHcHAAAgYgi4cWTYaW3d12c+XWU/bd8d6d0BAACICAJuHOnVroEd2yTTdhbssckfroz07gAAAEQEATeOJCUlBaq4//5wpW3LL4z0LgEAAFQ7Am6c6X9MI2vdoJZt3llgz3yyKtK7AwAAUO0IuHFGRzX7de/W7vyED761/MI9kd4lAACAakXAjUPnHd/UGmVm2Pot+fbCZ2sivTsAAADVioAbh2qkJtvQXq3ceR34YU+RF+ldAgAAqDYE3Dg1pEdzy66ZZis37rDXF66N9O4AAABUGwJunKqVnmq/PKmlO//IzOXm6Ti+AAAACYCAG8cUcGvWSLGv1m6xmV9viPTuAAAAVAsCbhzLrlnDLunR3J1/dMbySO8OAABAtSDgxrmhvVpbWkqSfbryJ5u78qdI7w4AAMAhR8CNc42yMmxwl6aBXlwAAIB4R8BNAL/u3caSk8zeXfKD68cFAACIZwTcBNCqQS07q2Njd/4fs6jiAgCA+EbATRDX927jvr6yINdWbdwR6d0BAAA4ZAi4CeLYJlnW+8jDTQc1e+w9qrgAACB+EXATyLDTiqu4z8373n7YuivSuwMAABCfAffHH3+0Vq1a2cqVKwPXLVq0yLp3725169a122+/vcRRuGbNmmXt27e3Bg0a2NixY0t8r2nTplmLFi0sJyfHnnnmmWr9PWJBj1b1rEvzbNtdWGQTP1gR6d0BAACIv4CrcHvOOeeUCLf5+fk2cOBA69q1q82dO9cWL15skydPdts2bNhggwYNsiFDhthHH31kU6ZMsRkzZgRC8aWXXmojRoywt956y0aOHGlLly6N2O8WjZKSkmzYaW3d+Skfr7LNOwsivUsAAADxFXB/8Ytf2CWXXFLiujfeeMM2b97sqrNt2rSxUaNG2cSJE902BVpVZxVi27Vr50Ksv23ChAnWp08fGzp0qHXs2NFuvPFGe/LJJyPye0WzvkcfYUc1rGPb8gvtyY/2vbEAAACIFxENuI8//rjddNNNJa5bsGCB9ezZ02rWrOkud+rUyVVx/W0KsapESo8ePWzevHmBbX379g18n+Bt2Cc5Ocmu39uL+6/ZK23n7j2R3iUAAID4CbjqvS1ty5YtJa5XmE1JSbFNmzaV2ZaZmWm5ubkh7xe8LRS1Qug+wadEcU6nxtas3mH20/bd9p85qyK9OwAAAPE1yay01NRUS09PL3FdRkaG7dixo8w2//pQ9wveFsro0aMtKysrcGrWrJklitSUZLv21OIq7uPvr7CCPUWR3iUAAID4Dbj16tVzk8mCbd261WrUqFFmm399qPsFbwtl+PDhrtfXP61evdoSyYVdm1qD2um2Jm+nvfR5+ZVuAACAWBN1AVfLg2mFBN+KFStcO4ECbOlt8+fPtyZNmoS8X/C2UFTtVRtD8CmRZKSl2DWntAocvrdIR4AAAACIA1EXcE899VTXDztp0iR3WasonHHGGa4PV0uEzZ4926ZPn24FBQU2ZswY69+/v7vd4MGDberUqbZw4ULbtm2bjR8/PrANoV3Ws7nVyUi1ZT9ss7cXr4/07gAAAMRnwFUvrZb80jJfOpjDSy+9ZA888IDbpsvjxo2zs88+2xo2bOjWub3zzjvdts6dO9vNN99s3bp1c5VbBeJhw4ZF+LeJbnUy0uyKE1u484/OXFbigBoAAACxKsmL0lSzbt06t8yXlgyrX79+iW1qW1iyZIn16tXLateuXWKblhRbs2aN9e7du8Ie3NJUNdZkM/XjJlK7wo/b8u3kP79r+YVFNmXoCXZy2waR3iUAAICDymtRG3CrW6IGXLnrpUX274++s1PaNrCnhp4Q6d0BAAA4qLwWdS0KqH6/OrW1pSYn2QfLfrQvvs+L9O4AAAAcFAIurGndmjbouBx3/pEZyyO9OwAAAAeFgAvn+t7FB354a/E6t6oCAABArCLgwmnXsI7169DQ1JE9/IUvLG/H7kjvEgAAwAEh4CLgdz870mrVSLE5KzfZeY98aMs3UMkFAACxh4CLgPaNM+35YSdZk+zDbMWP2+28h2fbB9/8GOndAgAAqBQCLko4ulGmvXTjyda1RV3bsqvQrpz0qT358XeR3i0AAICwEXBRRoPa6e6gD+cf38T2FHk24sVFNvKlRVa4pyjSuwYAALBfBFyElJGWYg9e1Nl+f+bRlpRk9sRH39lVk+fY5p0Fkd41AACAChFwUa6kpCS7/rQ29o/LutphaSn2/jc/2nmPzLaVP26P9K4BAACUi4CL/ep/TCObdv2J1jgrw77dsN3OfXi2fbicyWcAACA6EXARlmNystzks+OaZbs2hSsmfmpPf7Iq0rsFAABQBgEXYTuiToZNvbannXtcjhUWeXbHfxfaPa98yeQzAAAQVQi4qPTks79efJzd1u9Id3nS7JU29Im5tmUXk88AAEB0IODigCaf3di3nT16aRfLSEu2mUs32PmPfGjfbWTyGQAAiDwCLg7YWR0b27TrTrJGmRm27Idt9vOHZ9sn326M9G4BAIAER8DFQTm2SfHks05Ns2zTjgK7bOIn9uyc1ZHeLQAAkMAIuDhoDTMz7D/XnmgDOjW2gj2e/d/zX9j9ry12R0EDAACobgRcVInDaqTY34ccb789o527/Pj7K+xXT8y1ZT9sNc8j6AIAgOqT5JE+nC1btlhWVpZt3rzZMjMzI707Me2VBbl223MLLL+wePmw1g1q2c+OaWj9OjSy45tlW3JyUqR3EQAAxHFeI+DuRcCtWgu/32wP/m+pfbhso+0OWif38Drpdkb7htbvmIZ2Upv6lp6aEtH9BAAAsYOAW0kE3ENj664Cm/X1Bnv7y/U2Y8kPtjW/MLCtdnqqnXbU4dbvmEbua2ZGWkT3FQAARDcCbiURcA+93YVF9vG3G+3txetc4P1ha35gW1pKkp3YpoH169DQftahoZu4BgAAEIyAW0kE3OpVVOTZF2s229tfrrO3F6936+gGO65ZtmtjUN9u2yNqR2w/AQBA9CDgVhIBN7KWb9hm/1u83gXez1blldjW+vBa1veoI6x940w7smEdF3i1agMAAEgsWwi4lUPAjR4/bNll07/6wbUylJ6kJklJZs3r1bR2R9SxIxvWdqFXJwXhjDSCLwAA8YqAW0kE3OidpDZz6Qabs/In+3r9Vvtm/TbbuH13yNtq9bGW9WtZu6DQq1OrBrWsRipLPgMAEOsIuJVEwI0dP27LD4Rd/+vS9Vtt886CkLdPTU6ylg1q2VEN67jwq1aHLs3ruiXLAABA7CDgVhIBN7bpabxhq4Jvcej1Twq/wUuTBVObQ5fm2dalRV0XeI9uVMdSU6j0AgAQrQi4lUTAjU96eq/bsqs4+K7b6iq9OgjF1+4QwiVvW7NGinVuqsCb7QKvTnVr1YjUrgMAgFIIuJVEwE0sW3YV2Oer8uyzVZvcqg3zV22yrbvKVnp1mOHjm9e1rqrytsh2E9tSONQwAAARQcCtJAJuYtO6vMs2bLPPvttk875T6N1kyzdsL3O7Oumpdlzz7EDo7dgky+pR5QUAoFoQcCuJgIvS8nbstvl7q7wKvQtW59n23XvK3K5B7XQ7qlFtV909qpG/ekNtq8OhhwEAqFIE3Eoi4GJ/CvcUuR5e19Kwt8q7cuOOcm/fJPuw4nV6G9VxKzj4B6lgrV4AAA4MAbeSCLg4ENvzC91hhhV8v1mvSWzFk9k0sS0Ute+2qF/LBV8XeveGXy1jlsYKDgAAVIiAW0kEXFSlzTsK3EoNS9cVL1fmf920o/y1erMOS7M6GalWW6d0ndIsM/hyRqrrAVbrg39ZX3Uf/zoOaAEAiGfh5rXUat0rIEFk1Uyz7i3ruVOJtXq35RcfmMIPvlqvd91W19urI7SVd5S2cCngKgRnHpZWfMrYez4jzQXozMNS3XldlxViOwEZABAPCLhANUlKSrIj6mS408ltG5RZq1dHYtu2q9AdmEJLlun8tvx917mv7jr/coE7r+v9yW+7C4tsY+GBB+WMtOQSAbiWqsIpSZaanGxpqcmWlpJkae58kmupKD6VPa8DZtQIcb74cpLVCOO8vupyMsuyAQAqiYALREHwbZx1mDsdqD1FXnHYdeG4wLbsLLQtOwvcer8Kzu6yu37vZf82e7f7awDvKiiyXQX59sPWfItXWsc4JSnJkpPNTm13uI25oJNl12SpNwCIJ/Tg7kUPLhKZH5BLB2BNoissKrLdezwrKCxy5wv2eK5SHHy+YE+RFeo2e3TbkufzC4rs05U/WTRrWb+me6ORlGSmenGyArB/2Z3X1+Lr3e32ThgsfRu/6hxcgfbPl652qx1Evdfusqrjpc4riKfurZ6nBl1O2Xu5eFvJy+42ycl7v+67f/H+UwkHEPsStgd30aJFdtVVV9myZcts6NChNmbMGP6wA/uhQKSWBJ2aVfH31nvoix77yOas3GTRqqLl3uJFcOAtHYCDL/uBWdellQrNwZf3Beri+6RV8vK+gL7v+5V3WcF/333LXt73pqP4HYof6P3rit+EaFPxeXed+/SE4A/Eq7gKuPn5+TZw4EDr37+/TZ061W666SabPHmyC7wAIkMB4rnrTgoZfPX5kT5CKvI8d3KXveLL/vVekW6j7RZ0m+LLgev1j3/7vbcrvqrk/Ur/DP/nBL5f0PXaUOJnBK7zb7vvq7e3Cu6q2oWeq1z7Ve3g86Eq3P754sueW2/Z3b7IK/6ee4q/FhQVlbisn+Vuo/v4P3tP+R/IFd/GjeqhfLiBSht3cWc77/imkd4NxJm4alF48cUX7eqrr7bvv//eatasaQsWLLAbbrjBPvjgg/3elxYFAPFAYT848AZf3heOQ1zeszdA7w3WBUGXv1q7xR6ZuTzSvxpQrS49obk1qXvgcyNKK/7cwP80ofirf33wBwn+pwqBTxmCrt93n+LigP9/eI+392vwySt5Wf/n9xTt+xvh4p//jYK/qX++tHK2NcrMsGF92rqlKqtDQrYoKND27NnThVvp1KmTLV68ONK7BQDVRqtO1NDJqm7Jt85Nswm4SDhTPlkV6V2IGWs377JxFx9n0SSuAq5SfatWrQKX9W4nJSXFNm3aZHXr1i3TzqBT8H0BAGU1r1/TVv55QMhtfquJO+9fDmwrbvHwz1up60vfb9/5fdWi/d0u8NP2trvs9/v715X6/q8vWmtj3lx68IOFuNHnqMPt8DrpVfK9Sj4Xy3velv6/U/L5/toXay1aDejY2KJNXAXc1NRUS08v+WTMyMiwHTt2lAm4o0ePtnvuuaea9xAA4kvwx6Z7r7FYNOy0tu4ERKs/nFk8GbbE6ip7J2P6l1k3fJ+4OmxRvXr1bMOGDSWu27p1q9WoUXaNy+HDh7v+Df+0evXqatxTAACA8DWrV9OdtGa6Kst1a9VwB+apWaP4MO2E2ziu4Hbv3t0ef/zxwOUVK1a4NgQF39JU6S1d7QUAAEDsi6sK7qmnnup6aSdNmuQujxo1ys444wzXhwsAAIDEEHc9uBMmTLAhQ4bY7bffbsnJyTZz5sxI7xYAAACqUVwFXBk0aJAtX77c5s2b55YMq1+/fqR3CQAAANUo7gKuNGrUyAYMCL2kDQAAAOJbXPXgAgAAAARcAAAAxBUCLgAAAOJKXPbgHgj/cHgcshcAACA6+TnNz23lIeAGHfFMmjVrFuldAQAAwH5yW1ZWVrnbk7z9ReAEUVRUZLm5uVanTh13bPXy3jUoAOuwvpmZmdW+j7GEsaocxiu2xyoa9ylaMVaVw3iFj7FKjLHyPM+F25ycHHe8g/JQwd1Lg9S0adOwbqsnQ6w9ISKFsaocxiu2xyoa9ylaMVaVw3iFj7EKX6yOVUWVWx+TzAAAABBXCLgAAACIKwTcSkhPT7e77rrLfUXFGKvKYbxie6yicZ+iFWNVOYxX+Bir8KUnwFgxyQwAAABxhQouAAAA4goBFwAAAHGFgAsAAIC4QsAFAABAXCHglpKXl2evv/66O8/8O1QVHXVl2bJlkd4NoFps377d1q5dG+ndQJwJfk3m9blieWQZAm6wESNGWL169eycc85xf6DLO2QvzN56662E/o9TGXfccYc7JOL7778f6V2JepMnT7apU6fa4sWLo+q5xWMXvj/84Q/WunVr++yzzyK9K1Hv2Weftf/973/uMPEon4oDt9xyi51xxhn20ksv2Z49e3h9rgBZphgB18y9oB5xxBH2/PPPu3c8l1xyiXuBRWirVq2y8847zz799FP3H6eoqCjSuxSVFIoaNmzo/iA/99xzdtVVV0V6l6LWN998Y926dbO///3v9tBDD9kvfvELe/DBB922SD+/5syZ4x67L7/80l2OpuAdTd544w33d/TVV1+1J5980gYMGBDpXYpaCxcutE6dOtkDDzxgv/3tb+2iiy6yp59+2m3j+VXSkiVLrF+/frZu3To7+uij3d+Hf/zjH5HerahElikp4QOu/hDfeeeddvfdd7snQp8+fdzXnJwct50/Nvv4YzFz5kzbtWuXWyRakpMT/mlU7h8bBVwFo5/97Ge2adOmSO9S1HrzzTetadOmNnfuXPvvf/9r1113nT3++OPuzVSknl/+8/3dd991+zF+/Hh3OVGrIfszadIka968uS1atMgFErXlILSXX37ZBdx58+a55/spp5xi//rXv+yHH37g+VWK/v8de+yx7g2A/g+eeOKJtnLlSlfFxT5kmbISMpkEP9ADBw507xCHDRvmKkU6qkeTJk1s+vTpbnui/7HZvXu3+2MifrX2tddec/+JNmzY4EJINFTZom2s5KabbrLCwkJbsWKF/frXv7bTTz/drrnmmkBfVCILHiv9f/z888/dH2K9aDVq1MhOOukk9+ZAgbc66ef7z2U933V59uzZdvPNN7v9feGFFwL7nOiCx0puuOEGa9y4sX3//ffu+X7uuefa7373O/viiy8s0QWPlYL/e++9Zx07dnSXjzzySDv11FNd0eC7776zROf/3yooKHBf69evb23btnV/M1JSUlxvaVZWljuf6MgyFUu4gKs/IP379w9czszMtNTUVPeEUKVox44ddvjhh7sX10R/IfvLX/7i/oOcffbZdtttt7mgpjFSNVIfISusjR071vLz8931jNW+sVIYOuqoo6x79+52wgkn2Jo1a1xvol7cVPn2e5gT8Y1B8Fjdeuuttm3bNmvQoIH7v+m/qB1zzDGubSEjI6PaxkkffeqxUvVYlTUFDr2Iaj9/+ctfWs+ePW3ChAluHxPxxSLUWF1//fXuTYgCXIsWLax27dquwqbHUh+PfvLJJ/bHP/7RPvroo4R9vgePldpd6tSpY3Xr1i3Ro3zyySfbggULApcT9W9p8OtzWlqa+6rWJb3BrFGjhn3wwQf2xBNPuE/H7rvvPhfoEvV5RZbZv+RE7H3SOxq9UAU/6H5Aq1mzpgtsL774oiUyfWw2ceJE+89//uMqkarC6A+1XH311a7qoHeMCipqaE/U/0ChxkovVOolFU0ua9mypf3tb39zfXa6nSZK6EU/Eds7So/V/Pnz3Zuk4cOHu0rp/fff7/qVb7zxRlu/fn0gBBzqcdJHefo0Qm9C9Jg99thjNm7cOLftyiuvdIFbH7sr2PqPbSK+qJYeK7WV+GOl57nGR38bpkyZYkOHDnVfNZ56jBPx+V56rNQ7qufPn/70J5s2bZrbpk909EZPk4H8fslEfQNV+vVZ2rRp4948yWGHHeb+dqgnXrfVJwWJ+LwSssz+JdyzQh+F6qPi0aNH248//ugqNKVfqC688ELXL7l58+aE+0Pj/ydRBUsfofXt29f9EVE/z8aNG927Qn9MFG5/85vfuJnAmuWaaFVc/3dVCPPHStU/ffWXSFKYHTNmjLVq1cpdVvVGQcn/WD7Rx0qfBqgKk52d7V7sNZFEFe727dtb165dXbtCdYRJheuffvrJLrjgAveG7dprr7UPP/zQBXK9qMrxxx9vZ511lnvBWL16dcI9330al+Cx0t8H9UnqY3f9PdAnGPpYWfS81+Oov6f6FCPRx0pVXE3G05s3BVxNQFV1Uv24CsCa+Z7Ib55Kvz6LPh3w/5/pueR/8nPPPfe4FrBZs2ZZIiLL7F/CBVz9cdFH68cdd5yrGon/wPtf9Z9GH0Oq5yfRaAz0x0Q9TvpY1r9Of3z18ZDeFQaP12mnnWa9e/cOVCQT6T+RP1b6aMgfK/HHSjQ+OgXTRBJNWvJDQKKPlUKA/8dYIVdVLM0s14xpVXiro0KjFgmFseXLlwfCrPZHlTb/xVXPfQVz7bP/aUYiPd99et6WHit9OqFgqzYOvQkIfqHduXOnqzbpzV2iCTVWCrta8kor0WjFCT3f9WlGly5dAh+5J2JFsrzXZ41F8P8zVSV9Cm76v5uIyDL7lxD/i/QOUA+0P3tV/aNqxFZ5Xz1R/mQS/4XszDPPtBkzZgT+2CRSlcbvLzz//PPdi3nwH2p91Lhly5YSt1cQ1uQSjaX+WCeSisZKH6mp31Yv9Jp0M2TIELfepfpKNVaq4vq9UYlgf2Ol51Xp/2fqwdPH3YeyouX/XdDzWPylwFQN0d8JTXxTyPUpdA8aNMj1UKtimUgqGiv126rarr5IBVqFOAU39aKr//biiy9OqIBb0VhdeumlbiknjZX/PNdzX5U2rUKRaBXccF6ftV1/Tx9++GFXvdX1qn5rUqO/SkAiIMtUTlwHXD2YerD1R0XN1/oP4n8E1KNHD7cIshbhF93Gf3JookSvXr0CgS0RqjT+WPmN/WpO10ez/h9aVRz1wqUKnH+d/59FHzmrd1I9eIkg3LHyX9BV8VOY1UdJCndaH/f22293kybiXWWeV/7zyV/+R5Uaf1Z5VVe0/P3S3wXR/3eFDi2B5380qsdHbRQKs2rP8fdDE4ZUhU6UF9Zwx0qtCm+//bb7e6nHWG0eWg1DVXidT6S/o5V9Xmls9H/gUD3fY/31Wdv191RVbrV/qa1Dk830JkET9uIdWeYAeXGgsLCwxFcpKCgInF+/fr3Xv39/7/LLL/d27twZuH7BggVehw4dvClTppS5T25urhePwh2rK664wtu1a1fg+pEjR3rXXHNN4PKGDRu8eFdVY7V9+3b3ddOmTd6HH37oxaOqfl4VFRV5a9euPej9ysvL89asWRO4vGfPnjL7dfrpp3u33HKLN336dK9Hjx7e888/7+3evdtt1+N12mmneXPmzPHiXVWM1SmnnOItWbLEPcbff/+99+6773rxqKqfV7q/xi1Rxyqc12f9TYj31+eqGqtEyDLhiPmAqz8Q5557brnbR4wY4dWvX9+78MILva+//rrENv2xefDBB72OHTsG/vME/yeKNwcyVv54XHXVVd6YMWPcf7jrr7/ey8zM9FasWOHFq6oeq2XLlnnxqqrH6ttvv62S/br11lvdz+3cubML0nrxKG+//HBx5513epdccok3adIkd1kvNkcccYS3cuVKL55V5VjF898F4Xl1aMYqnNdn/Z2IV1U9VkVxnGUSJuD+/e9/95KSkrzXX3/dXfbfIT/11FNeixYtvJ49e7p30OXRH+NOnTp5zzzzjBfvDnSs9G5QY9SvXz+vbt263oknnuh99dVXXjxjrGJ7rB555BH3QjF37lxv1KhRXp8+fbz777/fbXviiSfK3S9V2XVf7c9ll13mNWnSxN1XVfh4fcFgrMLHWB36sUrE12fG6tAobhSKYZqdq6WYtM6gZu/6vX46XKRmYmvZmoqOeKIJLpr8oz6peHcgY6U3QeqFVO+OJoxMnjzZTbKJd4xVbI6Vv8i5DjCgfmctK9ShQwfX66jVK/wJP+rh08z14P3SPmm5Mi3l1K5dOzdxQ+vxaoKgVlCIN4xV+Bir6hmrRHt9ZqwOMS9GqN/kvffeK9FfsmPHDu+YY45xlaNevXp59957b4T3Mj7HShWGDz74wItHjFXsj1XwfukjzPz8fPeR8Mcffxy4zV133eX6IP2fm6gYq/AxVuFjrMLHWFWfmAm4U6dO9Ro2bOheUIM/Bt24caP7+vTTT3stW7YMNGjHc6/O/jBW4WOsYn+sSu+XLF682E14818cHnvsMdcnrGCeyC8YjFX4GKvwMVbhY6yqT8ysReIvqXLvvfe6y36p3l8qQ+uKdu/e3X1MmpDLYQRhrMLHWMX+WJXeL71x15HQgo/soyPtaX+0xE6irQUZjLEKH2MVPsYqfIxV9YmJgJuXl+f6/P7617/a1KlT3QLi6lvx18v0F4xXX5OOIKXDbvrrwCUaxip8jFXsj1Wo/Qr+uX4I1wuK1tAU7bcOCZxoC+ozVuFjrMLHWIWPsapeMRFw1aB/+eWX2+DBg92xl4MXNA7WrVs3d5vyticCxip8jFXsj9X+9suvfqxevdpN3tAR03QIXlWadZjPRFhQ38dYhY+xCh9jFT7Gqpp5UUr9e6F6Tz799FOvXbt23ssvv1xmYXl/wePWrVt777//vpcoGKvwMVaxP1bh7pc/EU5LNOXk5HgDBw70MjIyvAEDBrgF0xMBYxU+xip8jFX4GKvIiXjA3bp1a4nLeiIEv2D+73//K3E0HM1AvPvuu72uXbuWuI9P943Xo2wxVuFjrGJ/rKpiv/TioiP5NG3a1OvWrVvcrnDBWIWPsQofYxU+xir6RDTgTpw40RsyZIh7xxI8K1tWr17tnXfeeV5qaqo3efLkEvfTUaG0hMbYsWNDVpDiEWMVPsYq9seqqvZLtJh+8BI88YaxCh9jFT7GKnyMVXSKSMD1qz1aVkgP+iuvvFLiBfL3v/+9O+KLjlv/3Xfflbm/bqtDHtapU8f76aefvHjGWIWPsYr9sYrW/YpGjFX4GKvwMVbhY6yiW0SOZOYvH6RGas0efO2111xDddOmTe3II4+0xo0b28svv2ynnHJKyPurIVtHTBo5cqQ7r6Aer8s3MVbhY6xif6yidb+iEWMVPsYqfIxV+Bir6JaklFvdh6Xzv+rwnO+8845t2LDBzj33XHcoQx3eU0+QRJ8tyFiFj7GK/bGK1v2KRoxV+Bir8DFW4WOsYsMhH/lHHnnEbrjhBnfez9L+A/7hhx9ax44d7Y9//KNNmzbNlixZYscee2xge6ItcMxYhY+xiv2xitb9ikaMVfgYq/AxVuFjrGLPIQ+4n332mT366KO2atUqV4JXGd9frLhFixa2detW69WrlzuvJ8bf/vY3mzVrltueaKV6xip8jFXsj1W07lc0YqzCx1iFj7EKH2MVew55wNVCxZ06dbIrrrii+AcmJwfe1cydO9f1qEjbtm3tvvvuc0+gI444whIRYxU+xir2xypa9ysaMVbhY6zCx1iFj7GKPVU2yeyLL76w119/3U477TTXd5KZmWlffvml5ebm2pQpU6xHjx726quv2jnnnGP5+fmWnp7ubqdjLvfu3dtWrlxpffr0cU+SeH9SMFbhY6xif6yidb+iEWMVPsYqfIxV+BirOFIVSzHMmDHDy8zM9K6++mrvrLPO8oYOHRo48ob/9d5773WLFwfTETqSkpK822+/3S16rGUydP9vvvnGi1eMVfgYq9gfq2jdr2jEWIWPsQofYxU+xiq+VEnAveuuu9xCxvLjjz96v/3tb72f//znJW6za9cur3nz5t79998fuG7t2rXeF198UeJ2/uHq4hVjFT7GKvbHKlr3KxoxVuFjrMLHWIWPsYovBxRwX3rpJW/QoEHeQw895K1bt8675ZZbvH79+pVY/LhJkybeiy++GLgszz77rJeenu6O1OEfli7eMVbhY6xif6yidb+iEWMVPsYqfIxV+Bir+FbpgDtixAgvKyvLu+aaa9wh5tq3b+899dRTXvfu3b1vv/22xKHrjj/+ePduJ/iJ0bdvX+/CCy9MiCcFYxU+xir2xypa9ysaMVbhY6zCx1iFj7GKf5UKuDrO8kknneT6VOTrr7/2unTp4v3yl790PSvjx48vcfvOnTt7DzzwQIly/aeffurVqFHD++GHH7x4xliFj7GK/bGK1v2KRoxV+Bir8DFW4WOsEkOllgnLyMiwtLQ0q1WrlrvcoEEDa9eunXXu3Nkdmk7rxGkGou+OO+6wxx9/3C1ynJpavGBD9+7d7aeffrLDDz/c4hljFT7GKvbHKlr3KxoxVuFjrMLHWIWPsUoMlQq4WtxYD/QxxxzjHui6devamjVr3PVDhw51D/z48eMDt69Tp441b97c8vLySnwf/0kVzxir8DFWsT9W0bpf0YixCh9jFT7GKnyMVWKoVMDVO55+/fpZzZo13eXCwkK3Rly9evWsWbNmdvnll7v14i666CKbPXu2O5LHjh07rHbt2pZoGKvwMVaxP1bRul/RiLEKH2MVPsYqfIxVYjjgI5np0HN6l7NixQr3rkdOPfVUe/rpp931gwcPtt27d7uyvp5MiYyxCh9jFftjFa37FY0Yq/AxVuFjrMLHWMWvgzqS2erVq93xl/v37+8u6/B0LVu2dE8MlfKzs7Oraj9jHmMVPsYq9scqWvcrGjFW4WOswsdYhY+xik8HXMEVlexbt25tzz//vB177LE2duzYwPGYeUKUxFiFj7GK/bGK1v2KRoxV+Bir8DFW4WOs4tTBLMHwwgsvuMPT1alTxxs1alTVre0Qhxir8DFWsT9W0bpf0YixCh9jFT7GKnyMVXxK0j8HGo7VhP3666/bb37zG7fsBsrHWIWPsYr9sYrW/YpGjFX4GKvwMVbhY6zi00EFXAAAACCuenABAACAaEPABQAAQFwh4AIAACCuEHABAAAQVwi4AAAAiCsEXAAAAMQVAi4AxKCVK1daUlJSpHcDAKISARcA4txpp51mkydPjvRuAEC1IeACAAAgrhBwASBGvPrqq9a2bVtr0KCBPfHEE4HrZ8+ebccff7zVrFnTevToYYsXL3bXX3fdda6NYdasWXbVVVe587rON2fOHDvhhBMsKyvLzj//fNu8eXNEfi8AqGoEXACIAevXr7eLL77Yfv/739vHH3/swq4UFRXZBRdc4ALqt99+a6eeeqrddtttbtu4ceNs06ZNdvLJJ9vDDz/szus6ycvLs7POOsudvvjiC9uyZYvdeuutEf0dAaCqpFbZdwIAHDJvvvmmtWrVyn71q1+5y3fffbcNGDDAnZ8/f77VrVvXBVUF16VLl7rrDzvsMHdKTU111d3s7OzA93vttdcsLS3N7rrrLlfZVSi+4oorIvTbAUDVIuACQAxYu3atNW/ePHC5TZs27mtycrKryk6cONFat25tzZo1sz179uz3+33//fe2YcMGF4z9SvDWrVtt165dlpGRcQh/EwA49Ai4ABADjjjiCMvNzQ1cXrVqlfs6c+ZMmzBhgn311VfuNq+//rrNmzevxH0Vgj3PK3Fd06ZNrWvXrvaf//zHXdZ29eCqqgsAsY4eXACIAf369bMlS5bYv//9b1u+fLlrURBVXUWtCZpsdsstt5QJs6r2vvvuu64KPH36dFfhVXuDQvKnn37q2himTZtmZ555Zpn7AkAsIuACQAxQxXXKlCl2zz332CmnnOImjolCqU5dunRxKySoR1eVXk1K8915550uFLdo0cLdRu0I6sd9+eWX7cEHH3StDc8995y7rH5dAIh1SR5v1wEAABBHqOACAAAgrhBwAQAAEFcIuAAAAIgrBFwAAADEFQIuAAAA4goBFwAAAHGFgAsAAIC4QsAFAABAXCHgAgAAIK4QcAEAABBXCLgAAACwePL/AX3ATUoaDbQBAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#  6. 获客分析<br>  \n",
    "# 每一天新增多少用户 可视化\n",
    "# 每一个用户 第一次访问的日期\n",
    "new_vistor=data.groupby('user_id')['date'].min()\n",
    "new_vistor\n",
    "\n",
    "# 小李 11.18\n",
    "# 小王 11.20\n",
    "# 小杨 11.18\n",
    "\n",
    "# 11.18 新增用户？ 2个\n",
    "new_vistor1=new_vistor.value_counts()\n",
    "new_vistor1\n",
    "\n",
    "plt.figure(figsize=(8,4),dpi=100)\n",
    "new_vistor1.plot()\n",
    "plt.title('每日新增用户数量趋势分析')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0         False\n",
       "1         False\n",
       "2         False\n",
       "3         False\n",
       "4         False\n",
       "          ...  \n",
       "999995    False\n",
       "999996    False\n",
       "999997    False\n",
       "999998    False\n",
       "999999    False\n",
       "Name: date, Length: 1000000, dtype: bool"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['date']==data['date'].min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>behavior_type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4913</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>12645</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>54056</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>79824</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>88930</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4763</th>\n",
       "      <td>142265405</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4764</th>\n",
       "      <td>142306250</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4765</th>\n",
       "      <td>142306361</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4766</th>\n",
       "      <td>142368840</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4767</th>\n",
       "      <td>142450275</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4768 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        user_id  behavior_type\n",
       "0          4913              3\n",
       "1         12645              4\n",
       "2         54056              1\n",
       "3         79824              4\n",
       "4         88930              5\n",
       "...         ...            ...\n",
       "4763  142265405              8\n",
       "4764  142306250              5\n",
       "4765  142306361              2\n",
       "4766  142368840              2\n",
       "4767  142450275              1\n",
       "\n",
       "[4768 rows x 2 columns]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  8. 留存率分析<br>\n",
    "# 日期最小的那一天为开始  计算次日留存率 7日留存率 30日留存率\n",
    "# 第一天  1000人\n",
    "# 次日 500 50%\n",
    "# 七日 50 5%\n",
    "# 第一天 用户有多少次行为的数据\n",
    "first_user=data[data['date']==data['date'].min()]\n",
    "first_data=first_user.groupby('user_id')['behavior_type'].count().reset_index()\n",
    "first_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 4768 entries, 0 to 4767\n",
      "Data columns (total 2 columns):\n",
      " #   Column         Non-Null Count  Dtype\n",
      "---  ------         --------------  -----\n",
      " 0   user_id        4768 non-null   int64\n",
      " 1   behavior_type  4768 non-null   int64\n",
      "dtypes: int64(2)\n",
      "memory usage: 74.6 KB\n"
     ]
    }
   ],
   "source": [
    "first_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Timestamp('2014-11-19 00:00:00')"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['date'].min()+np.timedelta64(1,'D')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>behavior_type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4913</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>45368</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>100539</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>104155</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>113251</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4833</th>\n",
       "      <td>142306250</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4834</th>\n",
       "      <td>142337230</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4835</th>\n",
       "      <td>142412247</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4836</th>\n",
       "      <td>142450275</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4837</th>\n",
       "      <td>142455899</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4838 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        user_id  behavior_type\n",
       "0          4913              2\n",
       "1         45368              3\n",
       "2        100539              3\n",
       "3        104155              5\n",
       "4        113251              6\n",
       "...         ...            ...\n",
       "4833  142306250              2\n",
       "4834  142337230              1\n",
       "4835  142412247              1\n",
       "4836  142450275             17\n",
       "4837  142455899              1\n",
       "\n",
       "[4838 rows x 2 columns]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 第二天 哪些用户  行为数据\n",
    "second_user=data[data['date']==data['date'].min()+np.timedelta64(1,'D')]\n",
    "second_data=second_user.groupby('user_id')['behavior_type'].count().reset_index()\n",
    "second_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 合并数据\n",
    "data_date=pd.merge(first_data,second_data,on='user_id',\n",
    "        how='left')\n",
    "data_date.dropna(axis=0,inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>behavior_type_x</th>\n",
       "      <th>behavior_type_y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4913</td>\n",
       "      <td>3</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>113251</td>\n",
       "      <td>4</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>113960</td>\n",
       "      <td>3</td>\n",
       "      <td>12.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>157097</td>\n",
       "      <td>2</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>189833</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4759</th>\n",
       "      <td>142151675</td>\n",
       "      <td>7</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4760</th>\n",
       "      <td>142181816</td>\n",
       "      <td>28</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4762</th>\n",
       "      <td>142244794</td>\n",
       "      <td>10</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4764</th>\n",
       "      <td>142306250</td>\n",
       "      <td>5</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4767</th>\n",
       "      <td>142450275</td>\n",
       "      <td>1</td>\n",
       "      <td>17.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3288 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        user_id  behavior_type_x  behavior_type_y\n",
       "0          4913                3              2.0\n",
       "5        113251                4              6.0\n",
       "6        113960                3             12.0\n",
       "7        157097                2              1.0\n",
       "8        189833                1              1.0\n",
       "...         ...              ...              ...\n",
       "4759  142151675                7              3.0\n",
       "4760  142181816               28              6.0\n",
       "4762  142244794               10              8.0\n",
       "4764  142306250                5              2.0\n",
       "4767  142450275                1             17.0\n",
       "\n",
       "[3288 rows x 3 columns]"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_date"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6895973154362416"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "3288/4768  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 七日留存率\n",
    "seven_user=data[data['date']==data['date'].min()+np.timedelta64(6,'D')]\n",
    "seven_data=seven_user.groupby('user_id')['behavior_type'].count().reset_index()\n",
    "seven_data\n",
    "data_7date=pd.merge(first_data,seven_data,on='user_id',\n",
    "        how='left')\n",
    "data_7date.dropna(axis=0,inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>behavior_type_x</th>\n",
       "      <th>behavior_type_y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4913</td>\n",
       "      <td>3</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>12645</td>\n",
       "      <td>4</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>88930</td>\n",
       "      <td>5</td>\n",
       "      <td>7.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>113251</td>\n",
       "      <td>4</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>113960</td>\n",
       "      <td>3</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4762</th>\n",
       "      <td>142244794</td>\n",
       "      <td>10</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4764</th>\n",
       "      <td>142306250</td>\n",
       "      <td>5</td>\n",
       "      <td>10.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4765</th>\n",
       "      <td>142306361</td>\n",
       "      <td>2</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4766</th>\n",
       "      <td>142368840</td>\n",
       "      <td>2</td>\n",
       "      <td>7.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4767</th>\n",
       "      <td>142450275</td>\n",
       "      <td>1</td>\n",
       "      <td>37.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3055 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        user_id  behavior_type_x  behavior_type_y\n",
       "0          4913                3              3.0\n",
       "1         12645                4              1.0\n",
       "4         88930                5              7.0\n",
       "5        113251                4              1.0\n",
       "6        113960                3              9.0\n",
       "...         ...              ...              ...\n",
       "4762  142244794               10              9.0\n",
       "4764  142306250                5             10.0\n",
       "4765  142306361                2              2.0\n",
       "4766  142368840                2              7.0\n",
       "4767  142450275                1             37.0\n",
       "\n",
       "[3055 rows x 3 columns]"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_7date"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6407298657718121"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "3055/4768"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 三十留存率\n",
    "thirty_user=data[data['date']==data['date'].min()+np.timedelta64(29,'D')]\n",
    "thirty_data=thirty_user.groupby('user_id')['behavior_type'].count().reset_index()\n",
    "thirty_data\n",
    "data_30date=pd.merge(first_data,thirty_data,on='user_id',\n",
    "        how='left')\n",
    "data_30date.dropna(axis=0,inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>behavior_type_x</th>\n",
       "      <th>behavior_type_y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4913</td>\n",
       "      <td>3</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>12645</td>\n",
       "      <td>4</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>88930</td>\n",
       "      <td>5</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>113960</td>\n",
       "      <td>3</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>157097</td>\n",
       "      <td>2</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4760</th>\n",
       "      <td>142181816</td>\n",
       "      <td>28</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4761</th>\n",
       "      <td>142216376</td>\n",
       "      <td>9</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4762</th>\n",
       "      <td>142244794</td>\n",
       "      <td>10</td>\n",
       "      <td>7.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4763</th>\n",
       "      <td>142265405</td>\n",
       "      <td>8</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4767</th>\n",
       "      <td>142450275</td>\n",
       "      <td>1</td>\n",
       "      <td>14.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2910 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        user_id  behavior_type_x  behavior_type_y\n",
       "0          4913                3              1.0\n",
       "1         12645                4              2.0\n",
       "4         88930                5              1.0\n",
       "6        113960                3              2.0\n",
       "7        157097                2              6.0\n",
       "...         ...              ...              ...\n",
       "4760  142181816               28              1.0\n",
       "4761  142216376                9              6.0\n",
       "4762  142244794               10              7.0\n",
       "4763  142265405                8              1.0\n",
       "4767  142450275                1             14.0\n",
       "\n",
       "[2910 rows x 3 columns]"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_30date"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6103187919463087"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "2910/4768"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 产品运营过程    涉及指标    AARRR模型\n",
    "\n",
    "# 指标：描述某个业务环节的具体情况   进行管控 监督\n",
    "\n",
    "# 获取用户：渠道转化率 获客成本  下载成功率 注册成功率\n",
    "# 新增用户人数  打开一次且在五分钟内人数\n",
    "# 用户活跃：日活 活跃率衡量产品健康程度 活跃人数衡量市场体量\n",
    "# 用户留存：持续活跃 留存率\n",
    "\n",
    "# 8.1号  1000人购买\n",
    "# 8.2号  8.1号1000人里面  700人购买   次日留存率 70%\n",
    "# 8.7号  8.1号1000人里面  300人购买   七日留存率30%\n",
    "\n",
    "# 获得收益：付费人数占比  平均付费金额  付费总金额\n",
    "\n",
    "# 付费总金额/付费总人数\n",
    "# 付费总金额/总用户人数\n",
    "\n",
    "# 推荐传播：分享率  k因子：平均一个能带来几个新用户 >1\n",
    "# 推荐总人数/用户总数量  推荐转化率\n",
    "\n",
    "# 客单价10000/120=83  销售额10000块钱  到店人数120人  \n",
    "\n",
    "# 定义现有客户群体  活跃度分析\n",
    "# 流失用户   单位缩小到周  >2周\n",
    "# 睡眠用户   未活跃 >1周 <2周\n",
    "\n",
    "# 移动通讯：联通 电信 移动  一个月没有使用记录 判定流失\n",
    "\n",
    "# 得到窗口期的结束日期\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Timestamp('2014-12-18 00:00:00')"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "end_date=data.date.max()\n",
    "end_date"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: ylabel='count'>"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 得到每个用户最大活跃日期\n",
    "AU_date=data.groupby('user_id')['date'].max().reset_index()\n",
    "AU_date['几天没来']=(end_date-AU_date.date).dt.days\n",
    "AU_date['用户状态']=np.where(AU_date['几天没来']>14,'流失'\n",
    "                         ,np.where(AU_date['几天没来']>7,'睡眠','正常'))\n",
    "AU_date\n",
    "AU_date['用户状态'].value_counts().plot(kind='pie',\n",
    "                                   autopct='%.2f%%')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "项目名称：淘宝百万级用户行为分析\n",
    "\n",
    "技术点：数据一致性处理+获客分析+留存分析+活跃分析+转化率\n",
    "\n",
    "从公司数据库中取到用户行为数据，目标是深度分析用户行为，为运营 提供决策支持。\n",
    "\n",
    "对数据进行描述性统计分析，构建业务指标，得到pv，uv，复购率等，\n",
    "复购次数集中在1-5之间 2. 活跃分析：从时间维度分析用户行为，按天，按周，一天中不同时间段， 发现每周活跃时间集中在周二-周四，一天当中9:00-22:00，其中18:00-22:00 开始增加，达到一天中的顶峰，运营人员可根据活跃时间段安排相关活动 3. 获客分析：整体来看，每天都有新用户，但获客人数属于下降趋势， 后面需要设计活动进行拉新、 4. 留存分析：取日期最小值进行留存分析，次日留存率70%左右， 七日留存率65%，30日留存率60% 5. 转化率分析：总体转化率1%左右 6. 老用户状态进行分析，根据业务定义流失用户，睡眠用户，正常用户，得出结论，正常用户占92%，流失用户3%，睡眠用户5%左右，后续需要进行老用户促活，比如发起每日签到等任务。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
